package demo1229.pm;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/*
常用的线程池接口和类(所在的包java.util.concurrent):
public class Executors (线程池工厂类):可以通过此类获取一个线程池.
获取线程池的方法:
1.public static ExecutorService newFixedThreadPool(int nThreads);
获取一个固定数量的线程的线程池.
nThreads:指定的线程个数.
2.public static ExecutorService newCachedThreadPool()
获取动态数量的线程池,如不够创建新的,没有上限.

ExecutorService接口中的方法:
1.Future<?> submit(Runnable task);
提交一个 Runnable 任务用于执行，并返回一个表示该任务的 Future。
该 Future 的 get 方法在成功完成时将会返回 null。

2.void shutdown()
启动一次顺序关闭，执行以前提交的任务，但不接受新任务。
 */
public class Demo_01 {
    public static void main(String[] args) {
//        获取一个线程池对象
        ExecutorService threadPool = Executors.newFixedThreadPool(2);
//         向线程池中提交线程任务
        threadPool.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + ":AAAAA");
            }
        });

        threadPool.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + ":BBBBB");
            }
        });

        threadPool.submit(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName() + ":CCCCC");
            }
        });

//关闭线程池
        threadPool.shutdown();
    }
}
